#include "operationdocument.h"
#include <QFileInfo>
#include <QDir>
#include <QDebug>
#include <QCoreApplication>

OperationDocument::OperationDocument()
{

}


//要删除的文件夹或文件的路径
bool OperationDocument::DeleteFileOrFolder(const QString &strPath)
{
    if (strPath.isEmpty() || !QDir().exists(strPath))//是否传入了空的路径||路径是否存在
        return false;

    QFileInfo FileInfo(strPath);

    if (FileInfo.isFile())//如果是文件
    {
        if(!QFile::remove(strPath))
        {
            return false;
        }
    }
    else if (FileInfo.isDir())//如果是文件夹
    {
        //创建QDir的对象
        QDir mydir(strPath);

        QDir qDir(strPath);
        if(!qDir.removeRecursively())
        {
            return false;
        }
    }
    return true;
}

QString OperationDocument::searchConfigFile(QString ConfigFileName)
{
    QString binDir=QCoreApplication::applicationDirPath();
    QString appName=QCoreApplication::applicationName();
    QFile file;
    file.setFileName(binDir+"/"+ConfigFileName);
    if (!file.exists()) {
        file.setFileName(binDir+"/etc/"+ConfigFileName);
        if (!file.exists()) {
            file.setFileName(binDir+"/../etc/"+ConfigFileName);
            if (!file.exists()) {
                file.setFileName(binDir+"/../"+appName+"/etc/"+ConfigFileName);
                if (!file.exists()) {
                    file.setFileName(binDir+"/../../"+appName+"/etc/"+ConfigFileName);
                    if (!file.exists()) {
                        file.setFileName(binDir+"/../../../../../"+appName+"/etc/"+ConfigFileName);
                        if (!file.exists()) {
                            file.setFileName(QDir::rootPath()+"etc/"+ConfigFileName);
                        }
                    }
                }
            }
        }
    }
    if (file.exists()) {
        QString configFileName=QDir(file.fileName()).canonicalPath();	//将相对路径换成绝对路径
        qDebug("using config file %s", qPrintable(configFileName));
        return configFileName;
    }
    else {
        qFatal("config file not found");	//找不到该文件，则应用程序将输出一条错误消息，并中止程序
    }
}

bool OperationDocument::setqss(QWidget *w, QString ConfigFileName)
{
    QFile file(ConfigFileName);
    file.open(QFile::ReadOnly);
    if (!file.isOpen())
    {
        qDebug()<<__LINE__<<"打开文件失败";
        return false;
    }

//    QString styleSheet = w->styleSheet();
//    styleSheet += QLatin1String(file.readAll());//读取样式表文件

    QString styleSheet = QLatin1String(file.readAll());//读取样式表文件
    w->setStyleSheet(styleSheet);//把文件内容传参
    file.close();

    return true;
}
